/*export 暴露的是一个 function，在别的文件引用是，需要用import {函数名} 的方式引入
formatDate(date, 'yyyy-MM-dd hh:mm');*/
export function formatDate(date, fmt) {
  //.test是监测字符串fmt中是否含有多个y，如果有返回true
  if (/(y+)/.test(fmt)) {
    //$1：与 RegExp 中的第 1个子表达式相匹配的文本。
    //.replace方法，stringObject.replace(regexp/substr,replacement)，参数1规定子字符串或要替换的模式的 RegExp 对象，参数2是替换文本或生成替换文本的函数
    //substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。stringObject.substr(start,length)，参数1为起始位置，参数2为截取的长度，省略了该参数，那么返回从开始位置到结尾的字串 
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
  }
  let o = {
    'M+': date.getMonth() + 1,
    'd+': date.getDate(),
    'h+': date.getHours(),
    'm+': date.getMinutes(),
    's+': date.getSeconds()
  };
  for (let k in o) {
    if (new RegExp(`(${k})`).test(fmt)) {
      let str = o[k] + '';
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padleftZero(str));
    }
  }
  return fmt;
};

//此函数用于转化出的月时分秒的数字前面添加0，如果是6，加00变为006，因为长度为1，所以通过str方法从006第一位截取，最终的结果为06
function padleftZero(str) {
  return ('00' + str).substr(str.length);
}

